# 公司：安徽银杰
# 作者：李伟
"""
元素定位的有一个大元素：通过这个方法找到的元素是唯一的， 然后才能去操作。如果找到的元素不唯一，则换个方法。
第一类：只是靠元素的单一特征进行元素的定位：   使用较少。
①id属性定位：优先选择，id唯一 （除非是变化的不能使用）
②class属性定位：如果有多个class的属性值，可以选择其中的一个来定位 是一定要唯一。
③name属性值定位：有name属性 并唯一 就能使用。
④tag_name属性：基本不用，标签名基本不用。
⑤link_text属性：a标签 是链接[link] 文本就是link_text  完整匹配。
⑥partial_link_text属性：链接的文本部分匹配 【当文本很长 或者有很多空格  会用部分匹配】
"""

# 找到元素后 需要对元素进行常见的操作和执行，代码怎么来操作和执行呢？
# driver.find_element()
# 元素操作： 四大操作
# ①输入send_keys (文本输入)
# ②点击：click()
# ③获取文本
# ④获取属性

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
#开始元素定位

#1、id定位
# driver.find_element(By.ID,"chat-textarea").send_keys("柠檬班")
#当前案例的id 就是变化的 单次执行还可以，后续就会出现问题。
# time.sleep(2)

# 2、class定位
# driver.find_element(By.CLASS_NAME,"chat-input-textarea").send_keys("柠檬班")
# time.sleep(2)
#这个案例 class name值有多个需要选择唯一的使用。

# 3、name属性定位
# driver.find_element(By.NAME,"").send_keys("test")
# time.sleep(2)

# 4、tag_name属性  e属性 - 标签名 ： 有多个重复的标签名，会默认找到第一个标签名 ；基本上不用，因为会有很多个.
# 5、link_text属性
# driver.find_element(By.LINK_TEXT,"新闻").click()
# time.sleep(3)
# 6、partial_link_text属性   a元素的文本内容部分匹配，当文本内容非常长的时候需要用到部分匹配。
driver.find_element(By.PARTIAL_LINK_TEXT,"新").click()
time.sleep(3)